Implementing Lightweight Threads
نویسندگان
چکیده
We describe an implementation of a threads library that provides extremely lightweight threads within a single UNIX process while allowing fully concurrent access to system resources. The threads are lightweight enough so that they can be created quickly, there can be thousands present, and synchronization can be accomplished rapidly. These goals are achieved by providing user threads which multiplex on a pool of kernel-supported threads of control. This pool is managed by the library and will automatically grow or shrink as required to ensure that the process will make progress while not using an excessive amount of kernel resources. The programmer can also tune the relationship between threads and kernel supported threads of control. This paper focuses on scheduling and synchronizing user threads, and their interaction with UNIX signals in a multiplexing threads library.
منابع مشابه
Implementing the Nanothreads Programming Model on Top of Posix Threads
Goal of this paper is the efficient and portable implementation of the Nanothreads Programming Model (NPM), a dependence-driven two-level threads model for shared-memory multiprocessors, on top of the POSIX Threads API. Our general approach is to combine portability with efficiency by implementing the machine dependent components of the runtime system based on POSIX threads and defining an appr...
متن کاملChant: Lightweight Threads in a Distributed Memory Environment
Lightweight threads are becoming increasingly useful in supporting parallelism and asynchronous events in applications and language implementations. Traditionally, lightweight threads are supported only within the single address space of a process, or in shared memory environments with multiple processes. We introduce and describe the design of Chant, a runtime system supporting lightweight thr...
متن کاملCompiler support for lightweight concurrency
This paper describes the design of a direct-style, λ-calculus-based compiler intermediate representation (IR) suitable for implementing a wide range of surface-language concurrency features while allowing flexibility in the back-end implementation. The features that this IR includes to support concurrency include a weak but inexpensive form of continuations and primitives for thread creation, s...
متن کاملSunOS Multi-thread Architecture
We describe a model for multiple threads of control within a single UNIX process. The main goals are to provide extremely lightweight threads and to rationalize and extend the UNIX Application Programming Interface for a multi-threaded environment. The threads are intended to be sufficiently lightweight so that there can be thousands present and that synchronization and context switching can be...
متن کاملImplementing Self-upending for lightweight Jackets in Persian Gulf
Steel-structured jacket or template platforms have been extensively installed in Persian Gulf offshore oil & gas fields. For the jackets in the water depth range of 40 meters in this region, utilizing the self-upending concept has been investigated. It has been concluded that designing the light weight jackets, implementing the self-upending process for their installation operations, are econom...
متن کامل